package com.easipass.framework.eirframeworkcoredsl;

public abstract class Visitor {

    protected int sequenceNumber = 0;

    public void startVisit(String name, String dsl) {
    }

    public void endVisit() {
    }

    public boolean preVisitSequence(LabelledServiceNode firstNode) {
        return true;
    }

    public void postVisitSequence(LabelledServiceNode firstNode) {
        sequenceNumber++;
    }

    public boolean preVisit(SourceDestinationNode sink) {
        return true;
    }

    public boolean preVisit(SinkDestinationNode sink) {
        return true;
    }

    public boolean preVisit(FlowNode flow) {
        return true;
    }

    public boolean preVisit(FunctionNode function) {
        return true;
    }

    public void visit(SourceDestinationNode source) {
    }

    public void visit(SinkDestinationNode sink) {
    }

    public void visit(FlowNode flow) {
    }

    public void visit(FunctionNode function) {
    }

    public void postVisit(SourceDestinationNode source) {
    }

    public void postVisit(SinkDestinationNode sink) {
    }

    public void postVisit(FlowNode flow) {
    }

    public void postVisit(FunctionNode function) {
    }

    public boolean preVisit(SplitNode split) {
        return true;
    }

    public void visit(SplitNode split) {
    }

    public void postVisit(SplitNode split) {
    }

    public boolean preVisit(ServiceNode serviceNode) {
        return true;
    }

    public void visit(ServiceNode serviceNode) {
    }

    public void postVisit(ServiceNode serviceNode) {
    }

    public boolean preVisit(TransitionNode transition) {
        return true;
    }

    public void visit(TransitionNode transition) {
    }

    public void postVisit(TransitionNode transition) {
    }

}
